文本分类六十年
作者 | Lucy
出品 | AI科技大本营
文本分类是自然语言处理中最基本而且非常有必要的任务,大部分自然语言处理任务都可以看作是个分类任务。近年来,深度学习所取得的前所未有的成功,使得该领域的研究在过去十年中保持激增。这些文献中已经提出了许许多多的算法模型、基准数据集一集评测指标,因此需要一个对这个领域进行全面而且跟进趋势的调查。这里我们介绍基于机器学习和深度学习的文本分类,主要内容来自北航、伊利诺伊大学等学者联合发表论文 A Survey on Text Classification: From Shallow to Deep Learning。
本文通过回顾文本分类领域自1961年到2020年以来的历年SOTA模型来填补这类综述研究的空白,聚焦于从浅层学习到深度学习的各种模型。根据文本分类任务所涉及的文本数据来源、特征提取的方法以及分类模型的不同进行分类对比研究。随后,将讨论每一个类别的详细情况,其中涉及到给预测和测试提供可信支撑的技术变迁以及基准数据集。这项调查对不同模型之间的性能优劣进行了全面比较,而且指出了各种评测指标的优缺点。
最后,对各种算法模型的核心精髓、未来的研究趋势以及该研究领域面临的挑战进行了提炼总结。
文本分类
文本分类流程
在许多自然语言处理(NLP)下游任务中,例如情感分析,主题标记,自动问答和对话行为分类,文本分类(给文本指定某一预定义标签的过程)是一项意义重大且十分必要的任务。在信息爆炸时代,对海量的文本数据进行人工手动处理和分类,既费时又存在许多操作困难。除此之外,人工文本分类的准确性很容易受到人为因素的影响,例如疲劳和专业知识。因此,我们渴望使用机器学习的方法来使文本分类过程自动化,以产生结果更可靠、判定更少主观的结果。此外,通过从文本中定位所需信息,可以用来帮助提高信息检索效率并缓解信息过载的问题。
图1展示出了基于浅层和深度学习的文本分类方法中所涉及的操作步骤的流程图。文本数据不同于数字,图像或信号数据。它要求NLP技术具有能够进行十分精细化处理的能力。而首先重要的一步是对输入模型的文本数据进行预处理。浅层学习模型通常需要通过人工标注的方法来获得良好的样本特征,然后使用经典的机器学习算法对其进行分类。因此,该方法的有效性在很大程度上受限制于特征提取结果的好坏。但是,与浅层模型不同的是,深度学习通过学习一系列的非线性变换模式将特征工程直接映射到输出,从而将特征工程集成到模型拟合过程中。
文本分类发展历程
从1960年代到2010年代,基于浅层学习的文本分类模型占主导地位。这里的浅层学习指的是基于统计的模型,例如朴素贝叶斯方法(NaïveBayes,NB),K近邻(K- Nearest Neighbor,KNN)和支持向量机(Support Vector Machine,SVM)。与早期的基于规则的方法相比,该类方法的准确性和稳定性优势比较明显。但是,这些方法仍然需要做大量费时费力的特征工程。此外,这类方法通常不考虑文本数据中的自然顺序结构或上下文信息,这使得模型很难具备学习单词之间语义信息的能力。2010年代之后,文本分类已逐渐从浅层学习模型转变为深度学习模型。与基于浅层学习的方法相比,深度学习方法避免了人工设计规则和特征,可以自动从文本中挖掘出大量且丰富的语义表示。因此,大多数文本分类研究工作都是基于数据驱动且计算复杂度较高的DNNs来进行的。也正因为如此,如今很少有文章去关注如何使用浅层学习模型来缓和模型计算和构建数据时的局限性。
模型
文本分类模型
文本分类就是从原始文本语料中提取语义特征,并基于这些特征预测文本数据的主题类别。过去的几十年中,出现了各式各样的用于文本分类的模型。对于浅层学习类型的模型来说,朴素贝叶斯方法是开创了文本分类任务的模型的先河。此后,涌现出了更多通用的分类模型(习惯上称之为分类器),比如KNN,SVM和RF,它们在文本分类任务上都运用很广泛。最近,XGBoost和LightGBM这两类模型表现出优异的分类性能。对于深度学习类模型,到目前为止TextCNN仍然占据这类模型的最高引用量,其首次使用卷积神经网络来解决文本分类问题。BERT虽然不是专门为处理文本分类任务而设计的,但由于考虑到它在众多文本分类数据集中的有效性,因此在设计文本分类模型时也已被广泛借鉴。
浅层学习模型
浅层学习模型加快了文本分类速度,提高了准确性,并扩大了浅层学习的应用范围。首先是对原始输入文本进行预处理,以训练浅层学习模型,该模型通常包括分词,数据清理和数据统计。然后,文本表示旨在以对计算机来说更容易的形式来表达预处理的文本,并最大程度地减少信息丢失,例如词袋(BOW),N-gram,术语频率倒排文档频率(TF-IDF),word2vec [94]和GloVe [95]。BOW的核心是用字典大小的向量表示每个文本。向量的单个值表示对应于其在文本中固有位置的词频。与BOW相比,N-gram考虑相邻单词的信息,并通过考虑相邻单词来构建字典。TF-IDF使用单词频率并反转文档频率来对文本建模。word2vec使用本地上下文信息来获取单词向量。GloVe -具有局部上下文和全局统计功能-训练单词-单词共现矩阵中的非零元素。最后,根据所选特征将表示的文本输入分类器。
浅层学习方法是机器学习的一种。它从数据中学习,数据是对预测值的性能很重要的预定义功能。但是,要素工程是一项艰巨的工作。在训练分类器之前,我们需要收集知识或经验以从原始文本中提取特征。浅层学习方法基于从原始文本中提取的各种文本特征来训练初始分类器。对于小型数据集,在计算复杂度的限制下,浅层学习模型通常比深层学习模型表现出更好的性能。因此,一些研究人员研究了数据较少的特定领域的浅层模型的设计。
深度学习模型
DNN由人工神经网络组成,该人工神经网络模拟人脑以自动从数据中学习高级功能,在语音识别,图像处理和文本理解方面比浅层学习模型获得更好的结果。应该分析输入数据集以对数据进行分类,例如单标签,多标签,无监督,不平衡的数据集。根据数据集的特征,将输入单词向量发送到DNN中进行训练,直到达到终止条件为止。训练模型的性能由下游任务验证,例如情感分类,问题回答和事件预测。在表2中显示了多年来的DNN,包括与相应基本模型,评估指标和实验数据集不同的设计。如表2所示,前馈神经网络和递归神经网络是用于文本分类任务的前两种深度学习方法,与浅层学习模型相比,它们可以提高性能。然后,将CNN,RNN和注意力机制用于文本分类。许多研究人员通过改进CNN,RNN和注意力,或模型融合和多任务方法,提高了针对不同任务的文本分类性能。可以生成上下文化词向量的来自变压器的双向编码器表示(BERT)的出现,是文本分类和其他NLP技术发展的重要转折点。许多研究人员已经研究了基于BERT的文本分类模型,该模型在包括文本分类在内的多个NLP任务中比上述模型具有更好的性能。此外,一些研究人员研究了基于GNN的文本分类技术,以捕获文本中的结构信息,这是其他方法无法替代的。
深度学习由神经网络中的多个隐藏层组成,具有更高的复杂度,并且可以在非结构化数据上进行训练。深度学习架构可以直接从输入中学习特征表示,而无需太多的人工干预和先验知识。但是,深度学习技术是一种数据驱动的方法,通常需要大量数据才能实现高性能。尽管基于自我注意的模型可以为DNN带来一些单词间的可解释性,但与浅层模型进行比较并不足以解释其原因和工作方式。
技术挑战
文本分类作为高效的信息检索和挖掘技术,在文本数据的自动化管理中起着至关重要的作用。其中涉及到使用NLP、数据挖掘、机器学习和其他技术来实现自动主题分类或发掘新的不同的文本类型。文本分类将多种类型的文本作为输入,并且由预训练模型表示为可以计算的向量,然后将向量喂到DNN中进行训练,直到达到终止条件为止,最后,在下游任务验证训练模型的性能。现有的文本分类模型已经在实际应用中显现出了其可用性,但是仍有许多可改进的地方需要继续探索。
尽管一些新的文本分类模型不断刷新了大多数分类任务的准确率指标记录,但这并不能说明模型是否能像人类一样从语义层面“理解”文本。此外,随着噪声样本的出现,小的样本噪声可能导致决策置信度发生实质性变化,甚至逆转决策结果。因此,需要在实践中证明该模型的语义表示能力和鲁棒性。此外,由词向量表示的预训练语义表征模型往往可以提高下游NLP任务的性能。现有的上下文无关词向量迁移学习的研究还比较初步。因此,我们从数据,模型和性能三个角度总结出文本分类主要面临以下挑战:
A.数据
对于文本分类任务,无论是浅层学习还是深度学习方法,数据对于模型性能都是必不可少的。研究的文本数据主要包括多篇章,短文本,跨语言,多标签,少样本文本。针对于这些数据的特质,现有的技术挑战如下:
零样本/少样本学习。用于文本分类的零样本或少样本学习旨在对没有或只有很少的相同标签类数据的文本进行分类。然而,当前模型过于依赖大量标记数据,它们的性能受零样本或少样本学习的影响很大。因此,一些工作着重于解决这些问题,其主要思想是通过学习各种语义知识来推断特征,例如学习类之间的关系和合并类描述。此外,潜在特征生成、元学习和动态记忆力机制也是有效的方法。尽管如此,由于少量未知类型的数据的限制以及已知和未知类别数据之间不同的数据分布,要达到与人类相当的学习能力还有很长的路要走。
引入外部知识。众所周知,将更多有益的信息输入到DNN中,其性能会更好。因此,添加外部知识(知识库或知识图谱)是提高模型性能的有效方法。现有知识包括概念信息,常识知识,知识库信息,通用知识图谱等,这些知识增强了文本的语义表示。然而,由于投入规模的限制,如何为不同任务增加知识以及增加什么样的外部知识仍然是一个挑战。
多标签文本分类任务。多标签文本分类需要充分考虑标签之间的语义关系,而模型的嵌入和编码是有损的压缩过程。因此,如何减少训练过程中层次语义的丢失以及如何保留丰富而复杂的文档语义信息仍然是一个亟待解决的问题。
具有许多术语的特殊领域的文本分类。特定领域的文本(例如金融和医学文本)包含许多特定的单词或领域专家才可理解的词汇,缩写等,这使得现有的预训练词向量难以使用。
B.模型
大多数现有的浅层和深度学习模型的结构可以用于文本分类,包括集成方法。BERT学习了一种可用于微调许多下游NLP任务语言表征形式。主要方法是增加数据,提高计算能力以及设计训练程序以获得更好的结果。如何在数据与计算资源以及预测性能之间进行权衡值得研究。
C.性能
浅层学习模型和深度学习模型可以在大多数文本分类任务中实现良好的性能,但是需要提高其结果的抗干扰能力。如何实现对深度模型的解释也是一个技术挑战。
模型的语义鲁棒性。近年来,研究人员设计了许多模型来增强文本分类模型的准确性。但是,如果数据集中有一些对抗性样本,则模型的性能会大大降低。因此,如何提高模型的鲁棒性是当前研究的热点和挑战。
模型的可解释性。DNN在特征提取和语义挖掘方面具有独特的优势,并且已经出色地完成了文本分类任务。但是,深度学习是一个黑盒模型,训练过程难以重现,隐层的语义和输出可解释性很差。尽管它对模型进行了改进和优化,但是却缺乏明确的指导。此外,我们无法准确解释为什么该模型可以提高性能。
总结
在表1中介绍了文本分类的过程和发展,并根据模型类型和发表年份总结了经典模型的必要信息,包括会议,应用,数据集等。
介绍了当前数据集并给出了主要评估度量的表述,包括单标签和多标签文本分类任务。在表2中总结了主要数据集的必要信息,包括类别数,平均句子长度,每个数据集的大小,相关论文和数据地址。
在表4中总结了经典模型在基准数据集上的分类准确度得分,并通过讨论文本分类面临的主要挑战。
论文链接:
https://arxiv.org/abs/2008.00364
更多精彩推荐